package main

import (
	"strconv"
	"fmt"
)

func main()  {
	//布尔转字符串
	a := true
	aa := strconv.FormatBool(a)
	fmt.Println(aa)

	//浮点型转字符串
	b := 3.14
	bb := strconv.FormatFloat(b, 'f', 3, 32)
	fmt.Printf("%T\n", bb)
	fmt.Println(bb)

	//整形转字符串
	e := 1234;
	ee := strconv.Itoa(e)
	fmt.Println(ee)

	//字符串转整型
	c := "1234"
	//有两个返回值,第一个是返回的转换后的值，第二个是错误是的异常信息
	cc, _ := strconv.ParseInt(c, 10, 64)
	fmt.Println(cc)

	//字符串转浮点型
	d := "3.14"
	dd, _ := strconv.ParseFloat(d, 64)
	fmt.Println(dd)

	//将其他数据类型的变量转换为字符追加到切片里
	splic := make([]byte, 0, 1024)
	splic = strconv.AppendBool(splic, true)
	/**
		浮点型转字符串参数解释：
			bitSize表示f的来源类型（32：float32、64：float64），会据此进行舍入。

			fmt表示格式：'f'（-ddd.dddd）、'b'（-ddddp±ddd，指数为二进制）、'e'（-d.dddde±dd，十进制指数）、'E'（-d.ddddE±dd，十进制指数）、'g'（指数很大时用
	'e'格式，否则'f'格式）、'G'（指数很大时用'E'格式，否则'f'格式）。

			prec控制精度（排除指数部分）：对'f'、'e'、'E'，它表示小数点后的数字个数；对'g'、'G'，它控制总的数字个数。如果prec 为-1，则代表使用最少数量的、但又必需
	的数字来表示f。
	 */
	splic = strconv.AppendFloat(splic, 3.14, 'f', -1, 64)
	splic = strconv.AppendInt(splic, 1234, 10)
	fmt.Println(string(splic))
}
